سیستم های پردازشگر در ربات
تکنولوژی وفناوری روزدنیا+آموزش ربات وال
اموزش

سیستم های پردازشگر در ربات


مقدمه

پردازش اطلاعات در ربات ها به منزله عملکرد مغز انسان می باشد. اطلاعاتی که از قسمتهای مختلف به واحد پردازش می آید در این قسمت پردازش شده و فرامین برای محرکها و درایورها در اختیار آنها قرار می گیرد.

به طور کلی برای رباتها می توان ساختار زیر را در نظر گرفت :

بسته به نوع ربات از سیستم پردازش متناسب با آن استفاده می شود که به دو نوع عمومی و کاربردی آن اشاره خواهیم کرد:

1. کنترل کننده های منطقی برنامه پذیر(PLC )

2. سیستم های پردازش میکرو کنترلی

3. کامپیوترهای صنعتی

.1 کنترل کننده های منطقی برنامه پذیر(PLC )

پیشرفتهای چشمگیر فن آوریهای نیمه هادی در زمینه ساخت ریز پردازنده و حافظه های با حجم بالا امکان ساخت کنترل کنندهای منطقی الکترونیکی برنامه پذیر را فراهم آورد.

در این کنترل کننده ها بر خلاف کنترل کننده های مبتنی بر قسمت های الکترومکانیکی ،برای تغییر منطق کافی است بدون تغییری در سیم کشی یا قطعات،فقط برنامه کنترل را تغییر دهیم،در این صورت می توانیم از یک کنترل کننده منطقی برنامه پذیر هر جا که خواسته باشیم استفاده نماییم.شکل زیر یک کنترل کننده منطقی برنامه پذیر را به گونه نمایشی تعریف می نماید.

مزایای استفاده از کنترل کننده های منطقی:

1. استفاده از PLC حجم تابلو های فرمان را کاهش می دهد.

2. استفاده از PLC مخصوصا در فرایند های پیچیده موجب صرفه جویی در هزینه می گردد.

3. PLC استهلاک مکانیکی ندارد ،بنابراین علاوه بر عمر بیشتر نیازی به سرویس و تعمیرات دوره ای ندارد.

4. مصرف انرژی PLC بسیار کمتر از مدارات رله ای است.

5. PLC نویز های صوتی و الکتریکی ایجاد نمی کند.

6. طراحی و اجرای مدار های کنترل منطقی با PLC اسان و سریع است

7. ایجاد تغییرات (Modifications) و تنظیمات در PLC آسان و سریع است.

8. عیب یابی مدارات کنترل و فرمان با PLC سریع و اسان است و معمولا PLC خود دارای برنامه عیب یابی می باشد.

ساختمان داخلی PLC:

ساختمان داخلی یک PLC کم و بیش مانند ساختمان داخلی هر سیستم ریز پردازنده دیگر است.شکل زیر حالت کلی مربوط به ساختمان داخلی یک PLC را بیان می نماید.

شکل و زبان برنامه نویس در PLC

هر PLC دارای زبان برنامه نویسی خاص خود بوده که رابط ما بین کاربر و سخت افزار PLC می باشد.بوسیله برنامه که کنترل است که یک PLC پروسه مورد نظر را کنترل می نماید.

از انجا که مهمترین گروه علمی – شغلی مرتبط با PLC گروههای مرتبط با مهندسی برق می باشند لذا سازندگان PLC اقدام به طراحی زبان های برنامه نویسی خاصی نمودند که به دانسته های این گروه کاری نزدیکتر باشد. مهمترین روشهای برنامه نویسی عبارتند از:

برنامه نویسی به روش نردبانی(Ladder)

از آنجا که تمام نقشه های کنترل و فرمان منطقی قبل از ظهور PLC ها بصورت نردبانی یا چیزی شبیه به ان تهیه و طراحی می شد ، لذا سازندگان PLC این روش برنامه نویسی را بعنوان یکی از روشهای ممکن برنامه نویس انتخاب نمودند. شکل زیر یک نمونه برنامه به زبان Lad را نمایش میدهد.

در این روش ان دسته از عناصر نردبان که تابع یا عمل خاص وپیچیده هی را انجام میدهند برای سهولت با یک جعبه نمایش داده می شوند.دستورات نوشه شده به روش نردبانی به ترتیب از چپ به راست و از بالا به پایین انجام می گردند.

برنامه نویسی به روش فلوچارتی CSF یا نمایش جعبه ای تابع FDB

در این روش برنامه بصورت بلوکی نوشته شده که در ان هر بلوک بیانگر یک عملگر (Operation) می باشد.بدین ترتیب برنامه های نوشته شده به روش FBDعبارتند از یک سری جعبه که به یکدیگر متصلند.

روشهای فوق الذکر ممولا بطور مستقل کاربرد چندانی ندارند و اغلب برای عیب یابی و یا شناخت منطق کنترل سیستم نا شناخته بسیار مفید است.در شکل زیر یک نمونه از برنامه نوشته شده به زبان CSF نمایش داده شده است.

برنامه نویسی به روش لیست جملاتSTL (Statement List)

در این روش هر عمل منطقی توسط یک جمله یا عبارت مناسب نوشته می شود.مثلاً حرف A بیانگردستور AND می باشد .به همین دلیل برنامه ای که به روش LAD یا FBD نوشته می شود معمولا قابل تبدیل به STL می باشد در حالیکه عکس این قضیه همواره امکان پذیر نیست.

کنترل کنندهای منطقی برنامه پذیر امروزی

از اولین سالهای تولید PLC تاکنون بیش از سه دهه می گذرد . در این مدت شاهد تغیرات بسیار در ساختار PLC ها بوده ایم. از جمله این تغیرات میتوان به افزایش سرعت عملکرد ،توانایی کار با سیگنالهای انالوگ و دیجیتال و همچنین برخوردار شدن از امکانات ارتباطی سریع اشاره نمود.

برای برنامه نویسی PLC های قدیمی نیاز به یک Programmer مخصوص بود که این امر قیمت تمام شده یک سیتم کنترل منطقی با PLC را افزایش می داد. در حال حاضر امکان برنامه ر یزی PLC ها با استفاده از کامپیوتر های شخصی فراهم گردیده است و این امر سهولت و صرفه جویی قابل ملاحظه ای را ایجاد نموده است.

نحوه کار PLC

در ابتدای راه اندازی ، مانند هر سیتم مبتنی بر پردازنده، در PLC نیز برنامه سیستمی اجرا می گردد.پس از اجرای برنامه سیستمی و چک شدن سخت افزار در صورتی که شرایط لازم برای ورود به حالت اجرا(RUN) فراهم باشد ،برنامه کاربر فرا خوانده می شود .برای اجرای برنامه کاربر ابتدا تمام ورودی های PLC بطور یک جا فرا خوانده می شود و وضعیت انها (صفر یا یک)در مکانی به نام تصویر ورودی ((Input -Image-Area نوشته می شود. PLC در خلال اولین Scan برنامه،از داده های تصویر ورودی استفاده می نماید.توجه نمایید در صورتیکه در طول اولین Scan ،تغییراتی در ورودی ها حاصل شود ، این تغییرات تا Scan بعدی به مکان تصویر ورودی ها منتقل نمی گردد.

ضمن Scan برنامه کاربر نتایج حاصل را در مکانی بنام تصویر خروجی (Output-Image-Area) می نویسد و بعد از اجرای کامل برنامه و در پایان ،نتایج را بطور یک جا به خروجی ها ارسال می دارد.

خواندن یک جای ورودی هاو ارسال یکجای خروجی ها ،صرفه جویی قابل توجه ای را در زمان بدنبال دارد،زیرا خواندن یا نوشتن با آدرس دهی یک به یک زمان زیادی را به خود اختصاص می دهد.از جمله مزایای دسترسی به مکانهای تصویرخروجی یا ورودی ان است که امکان Set یا Reset نمودن هر یک از بیتهای ورودی یا خروجی را مستقل از وضعیت فیزیکی انها فراهم می نمایدو این کار مزیت بزرگی به هنگام عیب یاب ییا ازمایش یک برنامه نوشته شده محسوب می شود .

روش فوق در عین مزایای که ذکر گردید،مسئله ای به نام زمان پاسخ دهی برنامه (Program Response Time) را بوجود می آ ورد.

زمان پاسخ دهی مدت زمانی است که طول می کشد تا PLC تمام برنامه کاربر را Scan نماید ودر این مدت تغییرات بوجود امده در ورودی ها وارد مکان تصویر ورودی نمی گردد و خروجی ها نیز به حالتی که در Scan قبلی بودهاند باقی می ماند این امر در فرایندهای با سرعت تغییرات زیاد ،مشکل سلز است مخصوصا زمانی که برنامه کاربر طولانی بوده و مدت زمانی صرف Scan برنامه می گردد.

همچنین گاهی ملاحظات ایمنی لازم مدارد که تغییرات آنی بعضی از ورودی ها همواره مورد توجه قرار گیرد که در این صورت زمان پاسخ دهی ممکن است ثبت به موقع این تغییرات شود. برای حل این مشکل در زبانهای برنامه نویسی دستورات خاص گنجانده شده است.

با توجه به سرعت بالای PLC های امروزی و کندی فرایند های که توسط ان کنترل می گردند (سیستمهای الکترو مکانیکی)زمان پاسخ دهی در شرایط عادی ،معمولا مشکلی ایجاد نمی نماید در شکل زیر طرز کار PLC نشان داده شده است.

نگاهی به داخل PLC

هانوعی رایانه کنترل فرایند هستند که کوچک،بطور نسبی ارزان قیمت ودر برابر تغییرات شرایط فیزیکی محیط کار مقاوم بوده و به سهولت قابل برنامه ریزی ،راه اندازی و تعمییر و نگهداری می باشند.

آنها معمولا در مجاورت ماشین الات تولید یا فرایندی که انرا کنترل می کنند نصب شده و لذا معمولا بعنوان توسعه تجهیزات کارخانه قلمداد می شوند.

واحد های تشکیل دهنده PLC

در PLC کوچک ،پردازنده،حافظه نیمه هادی،ماژولهای I/O و منبع تغذیه در یک واحد جای داده شده اند. در PLC های بزرگتر ،پردازنده و حافظه در یک واحد،منبع تغذیه در واحد دوم و واسطه های I/O در واحد های بعدی قرار دارند.

ابزار برنامه نویسی ، که معمولا یک واحد پردازنده با صفحه نمایشو صفحه کلید می باشد (بعنوان مثال یک کامپیوتر،یک PG در خانئاده زیمنسو یا یک کنسول در Omron)به عنوان یک واحد مجزا از طریق یک سیم به واحد اصلی منتقل می گردد.

حافظه نیمه هادی شامل دو قسمت است: . حافظه ثبات : حافظه ثبات سیستم شامل برنامه ای است که توسط کارخانه سازنده تعبیع شده است.این برنامه وظیفه ای مشابه سیستم عامل dos دارد که بر روی Rom قرار گرفته است .

برنامه های ثابت در Rom ، در حین عملیات CPU نمی توانند تغییر یابند یا پاک شوند . برنامه موجود در این حافطه غیر فرار به هنگام قطع تغذیه CPU نیز حفظ می شود.

.حافظه تغییر پذیر :اطلاعات حافظه تغییر پذیر بر روی تراشه های نیمه هادی ذخیره می شود که امکان برنامه ریزی،تغییر و پاک کردن انها توسط برنامه ریز میسر است .

این حافظه عمدتا از نوع حافظه های با قابلیت دسترسی تصادفی (RAM) انتخاب می گردند.اطلاعات موجود در حافظه های RAM با قطع تغذیه ،پاک می پردند.

اغلب CPU ها دارای یک باتری پشتیبان هستند . بنابراین اگر تغذیه ورودی قطع شودو متعاقبا منبع تغذیه نتواند ولتاژ سیستم را تا مین کند،باتری پشتیبان برنامه9 ذخیره شده در RAM را حفظ می کند.

پردازنده

تمام ریز پردازند های کامپیوتری، به گونه ای طراحی شده اند که بتوانند محاسبات منطقی و حسابی را انجام دهند . این عملیات بوسیله ریزپردازنده(Microproccessor) و از طریق به کار گیری دستور العمل های متفاوت انجام می گیرد .

ریز پردازنده ها بر حسب میزان قدرت طبقه بندی می گردند.دو عامل در تعیین میزان قدرت ریز پردازنده ها عبارتند از تعداد بیت ها و سرعت پالس ساعت.ریز پردازند های فعلی امکان پردازش داده ها ، بصورت 16 , 8 ,4 و 32 بیتی را دارا می باشند.

هر چه تعداد این بیت ها نیشتر باشد ،قدرت پردازنده بشتر است.میزان پالس ساعت ،سرعت اجرای هر دستورالعمل را نشان مید هد.محدوده سرعت پالس در حال حاضر از محدوده 1MHz تا66MHz متغیر می باشد

ماژول های ورودی و خروجی(INPUT/OUTPUT)

ماژول های ورودی به صورت الکترونیکی چهار کار اصلی را انجام می دهد. اولا ماژول حضور یا عدم حضور سیگنال الکتریکی در تمام ورودی ها را بررسی می کند.این سیگنالهای ورودی ،وضعیت قطع یا وصل سوئیچها ،حسگرها و سایر عناصر در فرایند تحت کنترل را نمایش می دهند.

ثانیا این ماژول سیگنال مربوط به وصل بودن را از نظر الکتریکی به سطح DC که توسط مدارات الکترونیکی ماژول I/O قابل استفاده باشد تغییر می دهد.برای سیگنال ورودی قطع ، هیچ تبدیل سیگنالی صورت نمی گیرد و نشان دهنده حالت قطع است.

ثالثا این ماژول ،جدا سازی الکترونیکی را باجدا کردن خروجی ماژول ورودی از ورودی هش بصورت الکترونیکی انجام می دهد.در نهایت این ماژول سیگنالی را که توسط CPUسیستم PLCقابل تشخیص است ،ایجاد میکند.

منابع تغذیه

منبع انرژی که معمولا استفاده می شود منبع جریان 220vبا فرکانس 50~60HZ می باشد.از انجا که اغلب PLC ها با ولتاژهای 5،5- و +24 ولت کار می نمایند لذا هر PLC باید مجهز به مدارهای باشد که بتواند این تبدیل ولتاژ را انجام دهد.این تبدیل با استفاده از یک منبع تغذیه داخلی انجام می شود .

منابع تغذیه جدید مورد استفاده در سیستم های PLC از نوع تغذیه سوییچینگ بوده که نسبت به نمونه منابع دارای ترانسفورماتور دارای حجم و وزن کمتری می باشند.

.سیستم پردازش میکرو کنترلی

در رباتهای متحرک مانند انسان نماها ، امدادگرها و ..... به علت اینکه فضا و حجم کمتری در اختیار طراح می باشد و پارامترهایی چون اندازه و وزن در طراحی موثر می باشد، لذا سیستم های پردازشگر در آنها علی رغم وزن کم و ابعاد کوچک؛ کارآیی مطلوب و سرعت پردازش خوبی باید داشته باشد.در این نوع ربات ها از سیستم پردازش میکروکنترلی استفاده می شود.

میکروکنترلر چیست؟

میکرو کنترلر در واقع یک کامپیوتر تک تراشه ارزانقیمت می باشد.

تک تراشه بدین معنی است که کل سیستم در داخل یک تکۀ نازک سیلیکانی، در درون یک محفظۀ پلاستیکی مدار مجتمع ، قرار گرفته است. میکروکنترلر دارای خصوصیاتی مشابه با خصوصیات کامپیوتر شخصی استاندارد می باشد. میکروکنترلر محتوی یک CPU (واحد پردازشگر مرکزی)، RAM (حافظه با دسترسی تصادفی)، ROM (حافظه فقط خواندنی)، خطوط I/O (ورودی/خروجی)، درگاههای سریال و موازی، زمان سنجها و بعضی اوقات وسایل جانبی داخلی دیگری نظیر مبدل آنالوگ به دیجیتال (A/D) و مبدل دیجیتال به آنالوگ (D/A) می باشد.به هر حال وظیفۀ اصلی میکروکنترلر، توانایی بارگذاری ، ذخیره و اجرای برنامه است.

چرا از میکرو کنترلر استفاده می کنیم؟

چون میکرو کنترلرها کامپیوتر های تک تراشه ارزانقیمت هستند، به سادگی می توان آنها را در مدارات الکترونیکی بزرگتر قرار داد. توانایی ذخیره سازی و اجرای برنامه های منحصر به فرد، میکروکنترلرها را بسیار قابل انعطاف ساخته است.

به عنوان مثال یک فرد می تواند میکروکنترلر را طوری برنامه ریزی کند که تصمیم گیری نماید و بر اساس شرایط (وضعیت ورودی I/O) و رویدادها، عملیاتی انجام دهد. قابلیت انجام عملیات ریاضی و منطقی را تقلید کند.برنامه ها همچنین می توانند موجب شوند میکروکنترلر مانند یک شبکه عصبی ، و یا مشابه یک کنترل کننده با منطق فازی رفتار کند.

میکروکنترلرها در لوازم خانگی به کار برده می شوند و وظیفۀ هوش این دستگاههای هوشیار را برعهده دارند.میکروکنترلر های معروف( 6811 از موتورولا – 8051 از اینتل – 8 Z از زایلوگ- x16 PIC از میکروچیپ و AVR از اینتل )که در بسته بندی از نوع DIP (چهل پایه) و QFP ( بسته مسطح) تهیه شده اند. در ذیل دو نوع بسته بندی آی سی16 ATMEGA از سری AVR MEGA در هر دو نوع بسته بندی رسم شده است.

هر کدام از میکروکنترلرهای معروف که در بالا ذکر شد مجموعه دستورات و مجموعه ثبات های خود را دارد بنابراین با یکدیگر سازگار نیستند. برنامه ای که بر روی یکی از آنها نوشته شود بر روی دیگری قابل اجرا نیست.

تفاوت میکروکنترلر و میکروپروسسور همه منظوره:

1. میکروپروسسورها فاقدRAM و ROM و پورت های I/O در درون خود تراشه هستند.

2. سرعت میکروپروسسورها بالاتر از میکرو کنترلرها است.

3. میکروکنترلرها دارای یک فاقدRAM و ROM و پورت های I/O از پیش تعیین شده هستند ولی برای میکروپروسسورها خودمان طراحی می کنیم.

انتظاراتی که از میکروکنترلر داریم:

1. برآورده کردن نیاز محاسبات کار به صورت مؤثر و مقرون به صرفه.

2. در دست داشتن نرم افزار های کمکی مانند کامپایلرها، اسمبلرها و عیب یاب ها.

3. منابع گسترده و قابل اعتماد برای میکروکنترلرها.

4. به وسیله Programmer و کامپایلر می توان میکرو را پروگرام کرد.

درعمل نمی توان گفت که کدام یک از میکروکنترلرها از همه بهتر می باشد، اما طبق شرایطی از قبیل شرایط ذیل می توان از میکروکنترلر دلخواه طبق توانایی و خواص آنها استفاده کرد:

1. نیازهای سیستم مشخص و هزینه آن هم مقرون به صرفه باشد.

 سرعت

 بسته بندی

 توان مصرفی

 مقدارRAM و ROM در تراشه

 تعداد پایه های I/O و تایمر در تراشه

 قیمت هر عدد

2. در دسترس بودن آن در حال حاضر و آینده.

3. در دسترس بودن اسمبلر، کامپایلر، شبیه ساز، پشتیبانی فنی و ......

در ذیل به شرح سه میکروکنترلر کاربردی و معروف می پردازیم:

1. میکرو کنترلر AVR

2. میکرو کنترلر 8051

3. میکرو کنترلر PIC

میکرو کنترلر AVR

خانواده میکروکنترلر AVR دارای محدوده نسبتاً وسیعی هستند و همچنان این خانواده بزرگ در حال توصعه است .این میکروکنترلر هشت بیتی شرکت ATMEL برمبنای معماری RISC بهبود یافته طراحی شده است و دارای سه خانواده کلی زیر است:

1. خانواده ATTiny AVR

2. خانواده S90AT (سری کلاسیک)

3. خانواده Atmega AVR

تقسیم بندی فوق بر اساس امکانات موجود در آنهاست.

Tiny AVR دارای دستورات کمتر و همینطور از نظر سخت افزاری دارای تعداد پین های کمی می باشد. و Mega AVR دارای دستورات بیشتر و از نظر سخت افزاری دارای پین بیشتر می باشد. و AVR Classic در محدوده بین این دو قرار دارد.

در کل به علت تشابه مجموعه دستورات و ساختار حافظه در تراشه های AVR تغییر از یک تراشه به تراشه دیگر آسان و مسیر خواهد بود.

معماری RISC

RISC (کامپیوتر با مجموعه دستورات کاهش یافته) را می توان درمقابل معماری CISC (کامپیوتر با مجموعه دستورات پیچیده) مورد بررسی قرار دارد. RISC معماری از CPU است که مجموعه دستورات آن حاوی دستورات سریع الاجراء و ساده است، که نوشتن برنامه را مشکل تر اما سریعتر می کند.

معماری CISC

CISC نوعی از معماری CPU می باشد که شامل تعدادی دستورات طولانی و پیچیده است و نوشتن برنامه را ساده تر می کند ولی سرعت اجرا را کندتر می کند.

از ویژگی های معماری RISC می توان موارد زیر را اشاره کرد:

1. اولین ویژگی AVR با معماری RISC این است که دستورالعملهای آن دارای سایز 16 یا 32 بیت می باشد، در صورتیکه CPU با معماری CISC دارای دستورالعمل های با سایز متغیر است و از ویژگی های آن ثابت بودن سایز و سادگی دیکد کردن آن بوسیله CPU است.

2. از دیگر ویژگی های RISC تعداد رجیسترهای آن می باشد.همه AVR ها دارای 32 رجیستر همه منظوره 0 R تا 32 R می باشند که بطور مستقیم با واحد ALU در ارتباط هستند.

3. معماری RISC دارای تعداد دستورالعمل کم و سریع بوده و تعداد این دستورات با توجه به سری AVR بین 89 تا 135دستورالعمل متغیر است.به دلیل آنکه RISC دارای محدوده دستورات کمتری نسبت به CISC است. وظیفه برنامه نویس یا کامپایلر است تا دستور مورد نظر را بر اساس دستورالعمل های موجود در RISC انتخاب نماید.

شاید یکی از معایبی که معماری RISC دارای تعداد دستورات محدود است. بهمین دلیل نوشتن برنامه اسمبلی را نسبت به CISC مشکل تر می کند. که این خود دلیلی برای استفاده از زبان های سطح بالا همچون C ، Pascal و Basic به جای زبان اسمبلی در معماری RISC است.

4. مهمترین مشخصه معماری RISC این است که بیشترین دستورات با یک پالس ساعت(و تعداد کمی با دو پالس ساعت) اجرا می شود. به همین دلیل زمان اجرای برنامه در معماری RISC بالا می باشد.

امکانات کلی AVR ها

1. حدود 130 دستور که همه آنها در یک سیکل ساعت اجرا می شوند

2. 32 رجیستر 8 بیتی همه منظوره که مستقیماً به ALU وصل می باشد

3. ضرب کننده سخت افزاری با زمان اجرای دو سیکل ساعت

4. دارای سه نوع حافظه FLASH,EEPROM,SRAM

5. برنامه ریزی تراشه در داخل مدار بدون احتیاج به پروگرامر(ISP)

6. حفاظت از کدهای برنامه در مقابل خواندن

7. قابلیت تنظیم نوسانگر برای کار توسط کریستال خارجی، فرکانس پایین خارجی، نوسانگرRC خارجی نوسانگر RC داخلی و فرکانس خارجی

8. مجهز به پروتکل JTAG برای انجام دیباگ، تست و اسکن کردن وسایل جانبی تراشه و نیز برنامه ریزی حافظه های EEPROM,FLASH و فیوزها

9. شمارنده و تایمر 8 بیتی

10. شمارنده و تایمر 16 بیتی

11. RTC (Real Time Clock) با نوسانگر جداگانه

12. امکان تنظیم تایمر به صورت CTC

13. ADC های 10 بیتی با یک ورودی و یا ورودی تفاضلی با بهره قابل تنظیم

14. مجهز به پروتکل c12 یا TWI ارتباط دو سیمه

15. ارتباط سریال USART با قابلیت برنامه ریزی

16. ارتباط سریال SPI به صورت Master Slave

17. تایمر نگهبان قابل برنامه ریزی با نوسانگر مجزا

18. مقایسه کننده آنالوگ با امکان تعریف وقفه برای آن

19. Power On Reset ریست شدن در هنگام اتصال به برق

20. Brown-Out Detector با قابلیت برنامه ریزی

21. منابع وقفه داخلی و خارجی

22. شش حالت مختلف برای کاهش توان مصرفی

23. کار با ولتاژهای 4.5 – 5.5 در مدلهای بدون پسوند L و 2.7 – 5.5 با مدلهای پسوند L

برنامه نویسی در AVR

یکی از مزایای AVR قابلیت برنامه نویسی به زبان C می باشد؛ مزایای استفاده از زبان C زیاد است از جمله آن:

1. کاهش زمان برنامه نویسی

2. نگهداری ساده تر و قابلیت حمل بیشتر

3. استفاده مجدد از کدها و ساده تر شدن فهم برنامه

معایب برنامه نویسی به زبان C : AVR

افزایش حجم کدها در نتیجه کاهش سرعت برنامه و برای رفع این عیب ساختار AVR طوری طراحی شده است که دستورات تولید شده توسط کامپایلر C را به صورت مؤثر دیکد و اجرا کند.

کامپایلر C برای میکرو AVR به نام Codevision AVR معروف می باشد. برنامه نوشته شده به زبان C بعد از اینکه توسط Codevision کدهای مربوطه تولید شد توسط پروتکل های خاصی در AVR ریخته شده که اصطلاحاً به آن برنامه نویسی می گویند.

آشنایی با Codevision :

Codevision یک کلمپایلر C و تولید کننده خودکار کدهای برنامه است که برای کار با میکروکنترلرهای AVR ساخت شرکت ATMEL طراحی شده است. این برنامه طوری طراحی شده است که در ویندوزهای 95،98،ME،XP،NT،2000 قابل اجرا می باشد.

این نرم افزار علاوه بر کتابخانه استاندارد C، دارای کتابخانه های دقیقی برای کار با LCD های کاراکتری،تولید وقفه،تنظیم مصرف انرژی تراشه، قابلیت SPI، ارتباط یک سیمه، کار با سنسورهای دمایی75LM ، 1820DS، EEPROM های سریال است.

آشنایی با Codewizard :

Codewizard تولید کننده خودکار برنامه می باشد. این برنامه این امکان را به ما می دهد تا برای تنظیم امکانات مختلف تراشه از قبیل تایمرها، ADC، SPI، TWI و....... بدون نیاز به نوشتن کدهای آنها به صورت گرافیکی تنظیمات اولیه مورد نیاز را انجام دهیم.

در این صورت Codewizard کدهای لازم را برای ما تولید می کند و می توانیم در زمان کمتری برنامه خود را بنویسیم.

برنامه Codewizard به برنامه نویس کمک می کند که با سرعت بیشتری برنامه خود را بنویسد.

به دلیل اینکه وسایل جانبی AVR تنوع زیادی دارد، تنظیمات مربوطه به آن ها ممکن است کار بسیار دشواری باشد.

برنامه ریزی در تراشه AVR:

دو روش جهت برنامه ریزی در تراشه های AVR وجود دارد:

1. موازی

2. سریال (ISP)

.برنامه نویسی موازی:

در این روش n بیت اطلاعات توسط n خط انتقال می یابد. و ارتباط بین پروگرامر و تراشه به کمک دستورات موازی برقرار می شود. لازم است که به پایه Reset تراشه نیز ولتاژ +12 اعمال گردد.

چون ارتباط بین تراشه و پروگرامر از نوع موازی می باشد سرعت انتقال برنامه دو برابر سریعتر از حالت ISP می باشد.

این روش برنامه نویسی و برنامه ریزی برای انواع AVR ها کاربرد دارد و لذا در جاهایی که تولید انبوه مد نظر می باشد از این روش استفاده می شود.

.برنامه نویسی سریال: (ISP: In System Programming)

در این روش در هر لحظه فقط یک بیت ارسال می شود. در این حالت برنامه ریزی زمان انجام می گیرد که تراشه بر روی برد قرار دارد.

این امر به علت وجود قسمتی از حافظه FLASH به نام Boot Loader تراشه AVR کدهای برنامه را از PC گرفته و خودش را برنامه ریزی می کند. Boot Loader می تواند خودش را هم برنامه ریزی مجدد کند.

برقراری ارتباط بین Boot Loader,PC توسط سخت افزاری به نام Programming Adaptor انجام می پذیرد. سه روش یا پروتکل برای برنامه ریزی AVR در مد سریال وجود دارد:

1. پروتکل SPI

2. پروتکل JTAG

3. روش برنامه ریزی سریال ولتاژ بالا

 روش سوم با استفاده از ولتاژ 12 ولت می باشد که برای تراشه های هشت پایه به کار می رود.

 در روش SPI که کاربردی تر می باشد، علاوه بر برنامه ریزی تراشه، صحت برنامه نوشته شده هم تشخیص می دهیم (Verify)

 در این روش تنها به سه سیگنال احتیاج داریم، یک خط ورودی، یک خط خروجی و یک خط Clock

 روش JTAG نه تنها قادریم تا تراشه مورد نظر را برنامه ریزی کنیم، بلکه با تأمین سخت افزار و نرم افزار کافی عمل Debugging را هم انجام دهیم.

بنابراین به وسایل برنامه ریزی پیچیده تر با قیمتی بسیار بیشتر از یک ارتباط ساده SPI نیاز خواهد بود.

 میکروکنترلر 8051

یک میکروکنترلر از خانواده MCS-51 شرکت اینتل می باشد. که به بازار عرضه گردید.این میکرو به طور کلی دارای مشخصات زیر می باشد:

1. 4k بایت ROM

2. 128 بایت RAM

3. چهار درگاه I/O (ورودی و خروجی) هشت بیتی

4. دو تایمر شمارنده 16 بیتی

5. رابط سریال

6. 64k فضای حافظه خارجی برای کد

7. 64k فضای حافظه خارجی برای داده

8. پردازنده بولی که عملیات روی بیت ها را انجام می دهد

9. 210 مکان بیتی آدرس پذیر

10. انجام عملیات ضرب و تقسیم در 4 میکرو ثانیه

زبان برنامه نویسی در 8051

زبان برنامه نویسی در 8051، زبان اسمبلی می باشد. زبان اسمبلی حد فاصل بین زبان ماشین و زبان سطح بالا می باشد؛ زبان سطح بالا مانند پاسکال یا C از جملات و دستوراتی استفاده می کنند که به راحتی قابل فهم می باشند و زبان دودویی کامپیوتر است.

یک برنامه به زبان ماشین یک سری بابیتهای دودویی است که نماینده دستوراتی هستند. که کامپیوتر توان اجرایی آن را دارد.

در زبان اسمبلی این کدهای دودویی به یک سری نماد تبدیل می شوند که برای در ذهن جای گرفته و برنامه نویسی را آسان می کنند. یک برنامه زبان اسمبلی توسط کامپیوتر قابل اجرا نیست و پس از نوشته شدن باید به زبان ماشین ترجمه شود.

عمل فوق توسط یک اسمبلر انجام می شود؛ که این اسمبلر 51ASM می باشد؛ در 51ASM ابتدا فایل منبع را به عنوان ورودی می گیرد و یک فایل شیئی میکرو با پسوند .obg و یک فایل فهرستی با پسوند Lst به عنوان خروجی می سازد. فایل شیئی حاصل نیز به زبان قابل فهم میکرو با پسوند .HEX ترجمه می شود و این فایل را در میکرو بارگذاری می کنند.

البته این تمام مطلب نیست دستورالعملها روی داده عمل می کنند. و محل داده ها توسط روشهای آدرس دهی مختلف مشخص می گردد که به صورت کدهای دودویی در دستورالعملهای زبان ماشین قرار دارند. روش های آدرس دهی این اجازه را می دهندکه مبدأ و مقصد داده ها به روش های مختلفی که بستگی به وضعیت برنامه نویسی دارد مشخص می شود.

هشت روش آدرس دهی عبارتند از:

1. آدرس دهی ثبات

2. آدرس دهی مستقیم

3. آدرس دهی غیر مستقیم

4. آدرس دهی فوری

5. آدرس دهی بیتی

6. آدرس دهی مطلق

7. آدرس دهی طولانی

8. آدرس دهی اندیس دار

 میکرو کنترلر PIC

برنامه ریزی میکروکنترلرهای PIC یک فرآیند سه مرحله ای می باشد:

1. نوشتن برنامه (کد)

2. کامپایل کردن کد

3. بارگذاری کد در میکرو کنترلر

کامپایلر

کامپایلرهای متعددی در بازار موجود می باشندکه به کاربر اجازه می دهند برنامه (کد) را به زبانهای سطح بالای مختلفی بنویسند.زبانهای سطح بالا، برنامه نویس را از دست و پنجه نرم کردن و کنترل ثباتهای میکروکنترلر به هنگام نوشتن برنامه و نیز دسترسی به قسمتهای مختلف حافظه و خصایص میکرو کنترلر رهایی می بخشند.

PIC Basic

این زبان مشتقی از زبان Basic می باشد.زبان PIC Basic شبیه زبان PBasic که برای برنامه ریزی سری های Basic Stamp استفاده می شود می باشد.

استفاده مستقیم از کامپایلر PIC Basic (یا نسخه حرفه ای نرم افزار آنPro PIC Basic) برای برنامه ریزی میکرو کنترلرها، نسبت به میکروکنترلرهای سری Basic Stamp که از EEPROM خارجی سریال به عنوان حافظه ذخیره سازی استفاده می کنند دو مزیت بزرگ دارد:

 سرعت بیشتر اجرای برنامه (20 تا 100 برابر سریعتر)

 کاهش هزینه

کامپایلر های PIC Basic و Pro PIC Basicمحصول شرکت Micro Engineering Labs هستند.

سخت افزار و نرم افزار

برای شروع برنامه ریزی و ساخت پروژه ها بر اساس میکروکنترلر، به کامپایلر های PIC Basic و Pro PIC Basicو علاوه بر کامپایلر به بُرد برنامه ریزی کنندۀ EPIC و نرم افزار آن احتیاج دارید.

کامپایلر های PIC Basic و Pro PIC Basic

کامپایلر های PIC Basic و Pro PIC Basic هر دو به یک شیوه عمل می کنند. کد برنامه ذخیره شده (فایل متنی) از طریق کامپایلر اجرا می شود.

کامپایلر، فایل متنی را می خواند و لیست دستورالعملهای کد ماشین (فایل با پسوند hex) معادل برنامه را می سازد.کد ماشین (فایل با پسوند hex) لیستی از اعداد مبنای 16 می باشد که برنامه PIC Basic را می نمایاند.

لیست اعداد مبنای 16 (فایل با پسوند hex) در میکروکنترلر بارگذاری (پروگرام) می شود.هنگامی که میکروکنترلر روشن می شود، CPU آن در مجموعۀ اعداد مبنای 16 بارگذاری شده شروع به کار نموده و برنامه PIC Basic را اجرا می کند.

بارگذاری کد ماشین (فایل با پسوند hex) در میکروکنترلر به عهده برد برنامه ریزی کننده EPIC (پروگرامر) و نرم افزار آن می باشد.

نرم افزار کامپایلر می تواند به طور دستی در داس و یا پنجرۀ " MS-DOS Prompt " اجرا شود. انتخاب سوم اجرای کامپایلر در برنامه ای از ویندوز با نام Code Designer می باشد.

پروگرامر EPIC

کالای مورد نیاز دیگر مدار برنامه ریزی کننده EPIC است که آن نیز ساخت شرکت microEngineering Labs می باشد. دستگاه برنامه ریزی کنندۀ EPIC شامل نرم افزار (EPIC) و برد برنامه ریزی کننده (سخت افزار) می باشد.

بسته نرم افزاری EPIC دو فایل اجرایی دارد یکی برای سیستم عامل داس و دیگری برای سیستم عامل ویندوز.

این سخت افزار و نرم افزار (EPIC) است که فایل کامپایل شده با پسوند hex (که توسط کامپایلر تولید شده) را در میکروکنترلر، مکانی که می تواند اجرا شود،بارگذاری می کند.

پروگرامر EPIC با هردو کامپایلر PIC Basic و PIC Basic Pro سازگار است.برد پروگرامر (شکل زیر) یک سوکت برای قرار دادن تراشۀ PIC و ارتباط دادن آن با کامپیوتر دارد.

این برد بوسیلۀ یک کابل DB25 به درگاه چاپگر متصل می گردد.

میکرو کنترلر PIC84F16

میکرو کنترلر PIC84F16 در شکل زیر نمایش داده شده است. این قطعه یک میکروکنترلر انعطاف پذیر با حافظۀ فلَش می باشد.

حافظۀ فلش اصطلاحاً علمی برای توصیف حافظۀ قابل بازنویسی می باشد. حافظۀ فلش کیلو بایتی موجود در تراشه، می تواند حداقل 1000بار چرخه پاک شدن / نوشتن را تحمل کند.

مدت زمان نگهداری برنامه بین چرخۀ پاک کردن نوشتن تقریباً 40 سال می باشد.این تراشۀ 18پایه، 13پایه را به خطوط I/O اختصاص داده است.

هر پایه می تواند به صورت جداگانه به عنوان ورودی یا خروجی برنامه ریزی شود.وضعیت هرپایه (کنترل جهت I/O) می تواند به وسیلۀ برنامه ریزی در حین اجرا تغییر کند.

خصیصه های دیگر شامل ریست در هنگام روشن شدن ،صرفه جویی انرژی در حالت خواب ، زمان سنج روشن شدن و حفاظت از کد می باشد.

مشخصات عمومی:

1. CPU از نوع RISC دارای 35دستور یک کمله ای

2. سرعت عملکرد تا10MHz کلاک ورودی

3. 1کیلو بایت حافظه برنامه

4. فرامین14 بیتی

5. مسیر 8 بیتی داده

6. آدرس دهی مستقیم / غیر مستقیم / نسبی

7. امکان اجرای 1000 بار چرخه پاک / نوشتن

ویژگیهای جانبی:

1. 13 پایه I/O که هر کدام به طور جداگانه می توانند ورودی یا خروجی باشند

2. جریان زیاد ورودی خروجی برای راه اندازی مستقیم LED (حداکثر جریان ورودی برای هر پایه 25میلی آمپر- حداکثر جریان خروجی برای هر پایۀ 20میلی آمپر)

3. تایمر و شمارندۀ 8 بیتی به همراه مقسم فرکانس 8 بیتی قابل برنامه ریزی

گام اول : نوشتن کُد( برنامه به زبان بیسیک)

هر دو کامپایلر PIC Basic و PIC Basic Pro همراه با یک نسخه رایگان از نرم افزار CodeDesigner بسته بندی شده اند. CodeDesigner یک محیط یکپارچه (IDE) برای برنامه نویسی و برنامه ریزی میکروکنترلرهای PIC می باشداین نرم افزار یک ویرایشگر متن پیشرفته می باشدکه می تواند هر دو کامپایلر PIC Basic و PIC Basic Pro و همچنین نرم افزار برنامه ریزی کننده را فرا خوانی کرده و مورد استفاده قرار دهد.

فایل متنی برنامه را می توانید با استفاده از هر واژه پردازی که بتواند هر فایل متنی را به صورت متن داس یا اَسکی ذخیره کند، بنویسید.

می توانید از Note Pad ویندوز استفاده کنید. اگر با داس کار می کنید می توانید از برنامه Edit برای نوشتن فایل متنی استفاده کنید.

هنگامی که فایل متنی را ذخیره می کنید می نمایید، آن را با پسوند .bas ذخیره کنید.

گگام دوم: استفاده از کامپایلر

نرم افزار CodeDesigner پس از تنظیم شدن، کامپایلر و نرم افزار برنامه ریزی کننده را فراخوانی خواهد کرد. کامپایلر می تواند به صورت دستی از پنجرۀ DOS اجرا شود. برای اجرای دستی نرم افزار کامپایلر، دستور pbc و به دنبال آن شمارۀ تراشه ای که برنامه ریزی می شود (یعنی 84F16) و سپس فایل متنی کُد برنامه نوشته شده را وارد کنید.

در کامپایلر PIC Basic Pro عبارت فرمان به جای pbc، با pbp شروع می شود و به دنبال آن نام فایل متنی کُد برنامه قرار می گیرد.

به عنوان مثال، اگر در کامپایلر PIC Basic فایل متنی کد برنامه که ایجاد کردیم با نام wink باشد، آنگاه در صفحه اعلان فرمان داس عبارت زیر را وارد کنید:

برای کامپایلر PICBasic Pro خط فرمان عبارت است از:

کامپایلر فایل متنی را خوانده و به دو فایل دیگر کامپایل می کند، یک فایل با پسوند asm (زبان اسمبلی) و دیگری با پسوند hex (مبنای 16).

فایل wink.asm معادل زبان اسمبلی برنامه بیسیک می باشد.

فایل wink.hex کُد ماشین برنامه می باشد که به صورت اعداد مبنای 16 نوشته شده است. فایلی که در تراشه PIC بارگذاری می شود همان فایل با پسوند hex است.

اگر کامپایلر در حین کامپایل کردن کد برنامه بیسیک با اشکالاتی مواجه شود، فهرستی از خطاهای موجود را نشان داده و سپس به کار خود پایان می دهد.خطاهای فهرست شده باید پیش از آنکه برنامه با موفقیت کامپایل شود تصحیح شود.

گام سوم: برنامه ریزی تراشه PIC

بُرد برنامه ریزی کنندۀ EPIC راتوسط یک کابل 25DB به درگاه چاپگر کامپیوتر متصل کنید. اگر از برنامه CodeDesigner استفاده می کنید پروگرامر EPIC را از طریق منو راه اندازی کنید.

بُرد برنامه ریزی کنندۀ EPIC باید پیش از اجرای نرم افزار به کامپیوتر وصل شده و روشن شود، در غیر اینصورت نرم افزار پیغام خطای "EPIC Programmer not found" را نشان می دهد.

در کنار نرم افزار EPIC Windows (epicwin.exe) که می توانید آن را به صورت دستی در سیستم عامل ویندوز یا نرم افزار Code Designer اجرا کنید، یک نسخه تحت داس از برنامه با نام epic.exe وجود دارد.

شکل زیر تصویری از صفحه اصلی نرم افزار EPIC Windows می باشد. از گزینۀ Open File استفاده کرده و فایل Wink.hex را از فایل هایی که در کادر محاوره ای نمایش داده می شوند، انتخاب کنید.

فایل بارگذاری شده و اعداد نمایش داده شده است.

تراشۀ 84F16 را در سوکت روی برد برنامه ریزی کننده قرار داده و از منوی Run، گزینۀ Program را انتخاب کنید. همچنین می توانید کلیدهای Ctrl و P را روی صفحه کلید فشار دهید.

حال برنامه در میکروکنترلر بارگذاری شده و میکروکنترلر آماده است تا در مدارتان قرار گیرد و کار کند.

۳.کامپیوترهای صنعتی

همانگونه که از نام آنها می توان فهمید؛ این کامپیوتر ها در صنعت بکار می روند و تفاوتهای عمده ای با کامپیوترهای معمولی(کامپیوترهای خانگی) دارند.تفاوت هایی از قبیل مقاومت بیشتر در برابر ضربه، دمای محیط، جابجایی و انتقال و ..... دارند.

تمام اجزای این کامپیوترها در یک محفظه که اصطلاحاً رک نامیده می شود جمع می گردد. تجهیزات طراحی شده در یک رک، رکموند کردن(Rack Mount) نامیده می شوند.

اندازه (ارتفاع) این مدلهای الکترونیکی به صورت استاندارد ضرایبی از 1/75 اینچ یا 4/445 سانتی متر یا یک واحد rack unit(به اختصارu) می باشد.

این رک ها در طرح ها و اندازه و نوع های مختلفی برای مقاصدی خاص بکار گرفته می شوند.

مانیتورهای بکار گرفته شده در کامپیوترهای صنعتی مانیتورهایی معروف به مانیتورهای کنسولی هستند. اندازه ی آنها استاندارد بوده و برحسب u می باشد.

کیس های صنعتی:

این کیس ها مقاوم بوده و عمق آنها از عمق کیس های معمولی بزرگتر می باشد.

مادربردهای داخل این کیس ها مادربردهای خاصی هستند که بسته به نوع کاربرد کامپیوترهای صنعتی انتخاب می شوند. در ذیل دونمونه از این مادربردها نشان داده شده است.


نظرات شما عزیزان:

نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه:








ارسال توسط حسین

آرشیو مطالب
پيوند هاي روزانه
امکانات جانبی

نام :
وب :
پیام :
2+2=:
(Refresh)

خبرنامه وب سایت:





آمار وب سایت:  

بازدید امروز : 22
بازدید دیروز : 0
بازدید هفته : 30
بازدید ماه : 105
بازدید کل : 117615
تعداد مطالب : 26
تعداد نظرات : 1
تعداد آنلاین : 1





ربات